package com.xgj.filter;

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 过滤器配置类
 * 作用：注册并配置自定义过滤器
 */
@Configuration  // 标识这是一个Spring配置类
public class FilterConfig {

    /**
     * 注册自定义过滤器
     * @return FilterRegistrationBean 过滤器注册对象
     */
    @Bean  // 将该方法返回的对象注册为Spring容器中的Bean
    public FilterRegistrationBean<MyFilter> myFilter() {
        // 创建过滤器注册Bean
        FilterRegistrationBean<MyFilter> registration = new FilterRegistrationBean<>();

        // 设置自定义过滤器实例
        registration.setFilter(new MyFilter());

        // 设置过滤器的URL匹配模式（/* 表示拦截所有请求）
        registration.addUrlPatterns("/*");

        // 设置过滤器执行顺序（数值越小优先级越高）
        registration.setOrder(1);

        // 可选：添加排除路径（不拦截的URL）
        // registration.addInitParameter("exclusions", "/api/public/*,/login");

        return registration;
    }
}
